#include<string.h> требуется только для объявления функции char *strncat(string1,string2,n); добавляет n символов string2 к string1 char *string1; строка-приемник char *string2; строка-источник unsigned int n; количество добавляемых символов char *strncmp(string1,string2,n); сравнивает первые n символов строк char *string1; char string2; unsigned int n; количество сравниваемых символов int strnicmp(string1,string2,n); сравнивает первые n символов строки char *string1; char string2; unsigned int n; количество сравниваемых символов char *strncpy(string1,string2,n); копирует n символов string2 в string1 char *string1; строка-приемник char *string2; строка-источник unsigned int n; количество добавляемых символов char *strnset(string,c,n,); инициализирует n первых символов строки string char *string; инициализируемая строка int c; символ-приемник unsigned int n; количество принимаемых символов
Описание.
Функции strncat, strnsmp, stricmp, strncpy, strnset работают с первыми n символами строк, оканчивающимися нулевым символом.
Функция strncat добавляет n первых символов строки string2 к строке string1 , заканчивает результирующую строку нулевым символом ('\0') и возвращает указатель на строку-приемник (string1 ). Если n больше, чем длина строки string2 , тогда вместо n используется длина строки.
Функция strncmp лексикографически сравнивает первые n символов строк string1 и string2 и возвращает значение, которое указывает на отношение между подстроками, как приведено ниже:
Значение Его смысл меньше 0 substring 1 меньше substring 2 0 substring 1 равна substring 2 больше 0 substring 1 больше substring 2
Функция stricmp является причинно-нечувствительной версией strncmp ; функция stricmp сравнивает две строки string1 и string2 вне зависимости от чувствительности к регистрам; это обозначает, что формы букв верхнего и нижнего регистров рассматриваются как эквивалентные.
Функция strncpy копирует точно n символов строки string2 к строке string1 и возвращает string1 . Если n меньше, чем длина string2 , нулевой символ окончания ('\0') автоматически не добавляется к копируемой строке. Если n больше, чем длина string2, результат string1 заполняется нулевыми символами, вплоть до достижения длины n.
Функция strnset устанавливает первые n символов string в символ c и возвращает указатель на измененную строку. Если n больше, чем длина строки string , вместо n используется длина string.
Пример.
#include <string.h> char string[30]={"12345678901234567890"}; main() { char copy[100], suffix[100], *result; int numresult; unsigned int nresult; . . . /* комбинирует строку со строкой suffix, не более чем 10 символов (30 минус длина начальной строки). (Если в примере ис- пользуется более 10 символов, в память будет записано любое дру- гое значение) */ result = strncat(string,suffix,10); /* определяет порядок слов в строке, которая содержится в "program", но рассматривает не более 7 символов. Если строка со- держит префикс "program", strncmp возвращает 0 */ strcpy(string,"programmer"); numresult = strncmp(string,"program",7); /* сравнивает 4 символа двух строк вне зависимости от типа регистра */ strcpy(string,"PROGRESS"); nresult = stricmp(string,"program",4); /* копирует 99 символов строки */ result = strncpy(copy,string,99); /* устанавливает первые 4 символа строки в символ 'x' */ result = strnset("computer",'x',4); }